# -*- coding: utf-8 -*-
# @Date：2024/9/30 14:17:24
# @Author：CJiaの青姝
# @FileName：cj_log
# @Editor：PyCharm2024
# @Remark：
import os
import json
from datetime import datetime
from backend.settings import BASE_DIR


def logger_content(content):
    json_str = json.dumps(content, ensure_ascii=False, indent=None)
    return f"""{80 * "="}
{80 * "="}
{29 * "="} {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} {30 * "="}
{80 * "="}
{80 * "="}
{json_str}\n\n
"""


def save_api_log(info):
    if ("openapi.json" in info['request_path']
            or "static" in info['request_path']
            or "media" in info['request_path']):
        return
    # 获取当前接口地址
    path = info['request_path'].split("/")[3:]
    # 定义要创建的目录路径
    module_dir = os.path.abspath(os.path.join(BASE_DIR, "logger", path[0]))
    business_dir = os.path.join(module_dir, path[1])
    # 判断模块目录是否存在，如果不存在则创建
    if not os.path.exists(module_dir):
        os.makedirs(module_dir)
    # 判断业务目录是否存在，如果不存在则创建
    if not os.path.exists(business_dir):
        os.makedirs(business_dir)
    # 在当前业务目录下创建当前日志的txt文件
    log_file = os.path.join(business_dir, f"{datetime.now().strftime('%Y-%m-%d')}.log")
    with open(log_file, 'a', encoding='utf-8') as f:
        f.write(logger_content(info))
